Over the last 30 years, the Internet has grown from a few servers controlled by the government and a few educational institutions into a vast, heterogeneous network of servers and clients. The servers on the Internet provide more functionality than ever before, ranging from the advertisement and sale of automobiles to tutorials on Ancient Greece. This range has been broadened due to at least three inter-related factors: increasing computing power, increasing bandwidth and increasing numbers of users. Unfortunately, while in most situations computing power has kept well ahead of the demands of its users, the slowly increasing bandwidth by which most communications is sent can be, and is at times, outstripped by the geometric growth of Internet users.
While this problem may be prevalent in smaller intranets and local-area networks, it is magnified on the Internet. For example, important news can result in more than 3 million hits per minute on popular news-related websites. Due to the necessarily finite bandwidth of service providers and web servers, such great demand can overwhelm a site, and a download that would ordinarily take seconds can take minutes. As users' connection speeds have improved, and users become accustomed to faster downloads, this delay in service has taken on increasing significance.
One of the solutions to this problem is multicasting. Multicasting is an Internet protocol that can allow for streaming content to be sent to many different users at the same time by a server sending only one stream of data. A specified port is used for multicasting. The server sends its streaming data to this port, and clients who wish to receive the multicast “listen” on the specified port. Using this method, some of the bandwidth problems of normal “unicasting” can be overcome, and users can receive the data in a more timely and efficient fashion. Unfortunately, even this more robust method can be overwhelmed if sufficient numbers of users attempt to “listen” to the multicasting address simultaneously, and it is difficult for users of heterogeneous connection speeds to take advantage equally of the multicasting protocol.
Some information delivered by the Internet has a further complication in that it is not merely important that many users download content as quickly as possible; it is also important that they receive the content within a certain amount of time. Thus, the problem is how to deliver an event to all interested clients within a certain amount of time, such as within a given time window. One example of a situation in which the timing of the receipt of information can be important is the release of government data which can influence financial markets. In such a situation, those who receive the information first are in a position to profit from those who have not yet received the information. Furthermore, there is generally an initial time at which such information is released. Thus, the problem becomes how to send an event to a group of clients as close to the initial (or release) time as possible, but not after some later time beyond which the information becomes useless or stale. This problem is relevant from both an efficiency and fairness standpoint.
One difficulty in accomplishing this task is the problem of shifting network bandwidth discussed above. If many clients are logged on to a single server, the information flow from the server to each of the clients can be very slow. In a similar situation, the path between intermediate servers might be also be slowed so that everyone downstream from the congested server receives the information too late.
Another difficulty lies in the heterogeneity of client connectivity. While most corporate networks are now connected by high-speed backbones to the Internet, there are still many users who connect to the Internet using analog modems. If a user connected to the Internet through a broadband connection, such as a digital subscriber line connection, were able to begin accessing the information at the same time as a user connected via a 56 Kbps dialup connection, the user with the broadband connection would finish receiving the information long before the user on the slower connection. For example, if the event to be downloaded were 10 MB, it would take a 56 Kbps connection approximately 24 minutes to download the event, and a 1 Mbps digital subscriber line connection just 80 seconds.
Current methods of content distribution provide few tools to facilitate the sending of an event within a given time frame as fairly as possible to as many heterogeneous clients as necessary. Content and service providers generally pay no attention to fairness of distribution, or access at a particular time. Thus, only the fastest, most fortunate users will receive the content at an early time, often allowing them to unfairly profit from the other users who will receive the information at a later time proportional to network bandwidth and their own connection speed.